Routing, Routovací protokoly a RIP protokol
Autor: Jan Běhavý, Jaromír Krejčí
Datum: 15.1.2022
1. KRÁTKÝ ÚVOD DO POČÍTAČOVÝCH SÍTÍ OHLEDNĚ SMĚROVÁNÍ
Směrování v prostředí počítačových sítí lze vyjádřit jako proces určení cesty paketu na základě IP adresy adresáta. Jako paket si představme blok informací nesený skrze počítačovou síť. Adresy, které jsou zdroje a cíle v praxi zpravidla nebývají ve stejné síti. Jednotlivé uzly po cestě za cílovou adresou musí mít představu o tom, kam které pakety poslat. Cílem směrování je tedy co nejlépe a co nejefektivněji doručit paket adresátovi.
Představme si tuto situaci analogií se zásilkou (paket), kterou podal odesilatel (zdroj) v Ostravě a chce ji poslat adresátovi (cíl) v Plzni. Zásilka má na sobě napsanou adresu, kterou si na jednotlivých poštách (uzlech) přečtou a pomocí informací, které jsou jim dostupné zásilku pošlou. Řekněme, že jsou pouze dvě cesty: přes Brno a České Budějovice anebo jen přes Prahu. V Ostravě můžou vybrat Brno, protože je blíž a dále z Brna do Budějovic anebo Prahu.
Obrázek 1 - schéma poštovní analogie směrování
Danou analogii si můžeme představit jako obr. 1. Jak v této analogii, tak i v praxi závisí na mnoha faktorech, které by rozhodly, která cesta je ideálnější. Tato problematika je řešená právě směrováním a jednotlivými protokoly.
1.1. VRSTVOVÝ MODEL SÍTĚ
Pro hlubší pochopení problematiky je nutné si říci něco o vrstvovém modelu sítě. Jelikož na začátku rozvoje počítačových sítí existovalo několik vlastních systémů, které měli jiné normy a technickou dokumentaci, bylo nutné sjednotit jednotlivé prvky počítačových sítí kvůli propojení komunikace. Bez sjednocených standartních technologií a protokolů by jednotlivé systémy nemohly navzájem komunikovat a internet, či jiné sítě většího rozsahu by neexistovaly, což jde proti účelu počítačové sítě - spojovat klienty sítí ve které mohou komunikovat bez většího ohledu na vzdálenost.
Ukázalo se, že nejlepší formou, jak řešit komunikaci mezi sítěmi je využití síťové architektury složené ze souboru vrstev, kde každá vrstva řeší nějaký problém. Jeden z problémů je právě směrování. Zmíněné vrstvy si mezi sebou poskytují vzestupně ve své hierarchii služby, tedy že každá nižší vrstva poskytuje služby vrstvě vyšší. Na každé vrstvě pracuje jedna nebo více entit, které odlišují služby každé vrstvy.
1.1.1. SÍŤOVÝ PROTOKOL
Entity v jednotlivých vrstvách komunikují buď mezi entitami sousedních vrstev – vertikálně nebo mezi entitami vrstvy stejné úrovně – horizontálně. Jednotlivé entity ke komunikaci využívají protokoly podle toho, jestli to je komunikace vertikální nebo horizontální.
1.2. VRSTVOVÝ MODEL ISO/OSI
Tento model vznikal v době, kdy existovalo nespočet izolovaných systémů, proto je více obecný a také trochu více vzdálený reálným systémům. Tento referenční model byl vyvinut institucí ISO (International Standards Organization) a je nejznámějším modelem popisující síťovou architekturu. V tomto modelu je určeno, jak by počítačová síť měla být koncipována a jak má být řešena. Jako definice slouží série standardů definující pravidla pro pro-pojení systémů. Model pojednává o tom, jaký úkol je každou vrstvou řešen.
Obrázek 2 - Vrstvový model ISO/OSI
Referenční model se skládá ze sedmi vrstev (viz. obr 2). Tři nejnižší vrstvy (fyzická, linková a síťová) jsou zaměřeny hlavně na samotný přenos dat mezi uzlovými počítači, zatímco vrchní tři (relační, prezentační a aplikační) jsou orientované na podporu koncových aplikací. Prostřední (transportní) vrstva funguje jako jakási spojka nebo prostředník mezi vyššími a nižšími vrstvami. V podrobnosti se budeme zabývat pouze třetí vrstvou – síťovou vrstvou a to proto, že právě jejím úkolem je směrování.
1.3. VRSTVOVÝ MODEL TCP/IP
O tomto modelu se budeme bavit pouze krátce, a to pouze ke srovnání odlišností ve vztahu k referenčnímu modelu ISO. Na rozdíl od modelu ISO, má tento model pouze vrstvy čtyři: Aplikační, Transportní, Síťová a Vrstva síťového rozhraní.
Obrázek 3 - srovnání ISO a TCP/IP modelu
Schéma můžete vidět na obr. 3, kde je i mimo jiné znázorněno, které vrstvy korespondují s vrstvami opačného modelu. Tento model je dnes široce využíván.
1.4. SÍŤOVÁ VRSTVA
Směrování je nejdůležitějším úkolem síťové vrstvy (network layer) ve vrstvovém modelu ISO i TCP/IP. Tento proces představuje usuzování směru odesílání jednotlivých paketů. Samotné pakety jako rámce (frames) však síťová vrstva sama fyzicky nepřenáší, to je úkolem vrstvy linkové (link layer). Síťová vrstva pouze předává pakety vrstvě linkové k přenesení. Ke každému požadavku, který je odeslán, připojuje výsledek úsudku, jakým směrem má být daný paket odeslán. Síťová vrstva tedy směruje tok dat organizovaných do paketů.
Přesněji popisujeme, že síťová vrstva zajišťuje volbu vhodné trasy přes jednotlivé uzly. Je schopná předávat pakety po této vhodné trase od původního odesilatele až ke konečnému příjemci. Aby mohla síťová vrstva směrovat pakety musí znát způsob propojení jed-notlivých uzlů. Podle typu spojení posílá dle principu odlišně danou komunikaci.
1.4.1. NESPOJOVANÁ KOMUNIKACE
V praxi je velká většina sítí nespojovaná. To znamená, že pro komunikaci mezi dvěma stranami není vytvářený rezervovaný spoj, ale data jsou rozdělena na pakety (viz. obr. 3). Pro komunikaci s datovými toky, které jsou proměnlivé tedy není potřeba alokovat kapacitu toků odpovídající špičkám, protože se toky rozloží do kapacity samy. Takto jsou toky odolnější proti výpadkům a v případě poškození lze dynamicky přesměrovat pakety jinudy a samotný tok je zachován. Řídí se datagramovým režimem přenosu používaným protokoly IP a UDP, jednotlivé pakety jsou směrovány nezávisle, a mohou být dopravovány různými cestami.
Obrázek 4 - schéma nespojované sítě
1.4.2. SPOJOVANÁ KOMUNIKACE
Oproti tomu nespojovaná síť je taková, ve které si v průběhu komunikace uzly drží spojení tzv. spojově orientovanou službou. Data jsou směrována podle spojení a v nezměněném pořadí dochází k cílovému uzlu.
Obrázek 5 - schéma spojované sítě
1.4.3. PROCESY SÍŤOVÉ VRSTVY
Pro komunikaci mezi uzly v rámci sítě síťová vrstva používá čtyři fundamentální procesy: Adresování, zapouzdřování (encapsulation), routování a rozpouzdření (deencapsulation). Tyto procesy ve zkratce přidávají informace o adrese a odesilatele k odesílané informaci a mezi vrstvami zprostředkovávají úpravu informace tak, aby mohla být předaná fyzické vrstvě jako „jedničky a nuly“, které má odeslat. Když paket dosáhne své destinace, hosta, síťová vrstva prozkoumá, zda je paket určen jemu, pokud ano, informace z paketu se oprostí o přidané informace a předá informace do vyšších vrstev. Ke znázornění podstaty slouží obr. 6, na které lze vidět zapouzdření informací na vrstvové bázi v sítích TCP/IP.
Obrázek 6 - Zapouzdření dat v TCP/IP sítích
1.4.4. ZÁKLADNÍ SÍŤOVÉ PROTOKOLY
Aby mohly síťové vrstvy spolu komunikovat, existují síťové protokoly, které specifikují strukturu paketu a zpracovávají je, aby bylo možné komunikovat s jiným hostem. V současné době je nejpoužívanějším síťovým protokolem Internet protocol v4 (zkráceně IPv4). Dále je jeho nástupce, který postupně nastupuje v současném internetu – Internet protocol v6 (zkráceně IPv6). Za zmínku také stojí Novell Internetwork Packet Exchange (IPX), Apple Talk a Connectionless Network Service (CLNS/DECnet).
1.5. SÍŤOVÁ ZAŘÍZENÍ
Síťovými zařízeními myslíme zařízení počítačové sítě, která pracují s datagramy.
1.5.1. ROUTER
V předchozím textu jsme se zabývali termínem uzel abychom si zjednodušili operaci v sítích. Uzlem bývá myšleno obecné koncové zařízení připojené k síťovému médiu. Router, nebo také směrovač, je však přímo dané aktivní síťové zařízení, které směřuje pakety k jejich cíli. K tomu používá informace síťové vrstvy. Router často spojuje dvě sítě a směřuje data mezi nimi. Díky zabudované filtraci paketů a inteligentnímu směrování umí router rychle a efektivně nasměrovat pakety k cílovému uzlu. Router, který připojuje klienty k vnější síti (typicky internetu), se říká okrajový router dříve též brána (edge router nebo gateway).
1.5.2. SWITCH
Switch lze česky pojmenovat jako síťový přepínač. Toto zařízení se v počítačových sítích používá převážně při hvězdicové topologii sítě. Na rozdíl od routeru operuje především na druhé vrstvě – linkové vrstvě. Pamatuje si tabulku MAC adres a plní zde funkci přemostění podobně jako Bridge (most), ale také filtruje pakety podle portů. Dnes se můžeme setkat se switchi, které plní v omezené míře i funkce na třetí (síťové) vrstvě. Switche berou v úvahu jen nejbližší okolí, ale jednoduchost rozhodování o směru vyrovnává rychlostí.
2. SMĚROVÁNÍ
Internet, jak ho známe dnes stojí na dvou procesech, a to předávání IP datagramů (IP forwarding) a směrování IP datagramů (IP routing), kterým se hlavně zde budeme zabývat. Proces směrování se skládá z několika kroků, které si dále představíme.
2.1. PROCES SMĚROVÁNÍ
Nyní si představme, že náš uzel dostal nějakou informaci ve formě IP datagramu. K tomu, aby zjistil jestli je informace určena pro něj nebo jiný uzel dochází sérií kroků:
I. Jak jsme si uvedli výše (viz. procesy síťové vrstvy) ze zapouzdřeného IP da-tagramu uzly vybalují informaci z linkového rámce a předávají jej do vstupní fronty ke zpracování. (Linková adresa a IP adresa odesilatele mohou být uloženy do paměti k využití později.)
II. IP datagram je ze vstupní fronty vybrán ke zpracování.
III. Nyní přichází samotné zpracování; vyhodnotí se podle záhlaví IP datagramu. Pokud byl IP datagram pouze explicitně odkloněn přes náš uzel a je směřován jinde, předává se k odeslání dále.
IV. Nyní se vyhodnocuje, zda byl IP datagram směrován našemu uzlu. Pokud ni-koli, čeká ho cesta jako v kroku III., odeslání dále. Takováto situace často na-stává v síťových směrovačích.
V. Dále se zjišťuje, zda přicházející IP datagram nenese zprávu ICMP*(nebo IGMP-paketů). Pokud ano,
VI. IP datagram v sobě nese buď TCP segment, nebo UDP datagram. Ty jsou vy-baleny z IP datagramu a předány vyšší vrstvě ke zpracování.
VII. Všechny odchozí IP datagramy jsou nejprve předány subsystému Směrování. Cílem tohoto subsystému je nalézt síťové rozhraní, kterým bude IP datagram zabalený do linkového rámce odeslán. K tomu subsystému Směrování pomá-hají Směrovací tabulky.
VIII. Nyní se zkoumá, nejedná-li se o oběžník, který je též adresován této stanici. Pokud ano, pak se kopie IP datagramu též předá do vstupní fronty.
IX. Jedná-li se o oběžník, pak se přejde k bodu 11. V opačném případě se přejde k bodu 10.
X. Nyní se zkoumá, není-li cílová adresa adresou této stanice. Pokud ano, pak se IP datagramu též předá do vstupní fronty.
XI. Jelikož se jedná o oběžník, proběhne jeho přímé mapování na linkovou adre-su a odeslání do sítě.
XII. Jelikož se jedná o jednoznačnou IP adresu příjemce, tak se pomocí paměti zjistí adresa linkového příjemce, IP datagram se zabalí do linkového rámce a odešle do sítě.
Jak si lze všimnout informace se postupně rozbalovala stejně jako se zabalovala (viz. kapitola 1.4.3 a obr. 6)
*ICMP zprávy pocházejí ze stejnojmenného protokolu, který funguje v sítích založených na TCP/IP protokolu, což je p rotokol využívaný internetem. Slouží pro služební informace sítě nebo chybová hlášení pro oznámení.
Obrázek 7- Obrázek 7.1: Směrování. In:DOSTÁLEK, Libor a Alena KABELOVÁ. Velký průvodce protokoly TCP/IP a sys-témem DNS. 3. aktualiz. a rozš. vyd. Praha: Computer Press, 2002. ISBN 9788072266753.
2.2. SMĚROVACÍ TABULKY
Směrovači k rozhodování slouží směrovací tabulka. To je taková tabulka, kde každý řádek obsahuje IP-adresu cílové sítě, síťovou masku, IP-adresu následujícího routeru, síťový interface, do kterého bude paket směrovat směrem k následujícímu routeru a metriku. Me-trika je hodnota, podle které se při směrování rozhoduje, pokud vyhovuje více sítí zadané destinační adrese. Rozhoduje se tak, že se rozhoduje ve prospěch metriky nižší hodnoty.
Obrázek 8 - příklad směrovací tabulky ze software Router-OS WinBox
2.3. SMĚROVACÍ PROTOKOLY
Směrovací protokoly slouží směrovačům, aby si vzájemnou komunikací mezi sebou automaticky naplnily a udržovaly směrovací tabulky. Směrovací protokoly můžeme rozdělit na dvě nezávislé skupiny.
Podle použitého algoritmu na:
• Link state protocols (LSP)
• Routing vector protocols (RVP)
Z hlediska organizačního:
• Interior gateway protocols (IGP)
• Exterior gateway protocols (EGP)
2.3.1. ROUTING VECTOR PROTOCOLS (RVP)
Princip RVP je jednoduchý. Každý směrovač pravidelně odesílá oběžníkem obsah svých směrovacích tabulek. Sousední směrovače si tuto informaci vzájemně přečtou a pro-mítnou ji do svých směrovacích tabulek. Jeden z protokolů v této skupině je RIP.
2.3.2. LINK STATE PROTOCOLS (LSP)
Tato skupina řeší problematiku pomocí grafu a algoritmizace, kdy takto vyhodnocuje cesty a metriky. Na tomto základě si směrovače vytvoří své směrovací tabulky. Potřebují pouze znát topologii sítě, ze které si sestaví graf. Podle odezvy se dopinguje k sousedům a metriku doplní podle pingu. Po sestavené tabulce si směrovače navzájem vyměňují informace
OSPF Asi nejrozšířenějším příkladem protokolu LSP je protokol OSPF (Open Shortest Path First). OSPF implementuje řadu nových vlastnosti: vzájemnou autentizaci komunikujících směrovačů, load balancing na paralelních linkách o stejné metrice, podporu QoS, redistribuci směrovacích informací získaných mimo AS atd. Existuje i varianta pro protokol IPv6.
Border Gateway Protocol (BGP) je dynamický směrovací protokol, který umožňuje routerům automaticky reagovat na změny topologie počítačové sítě. Protokol BGP je používán v rámci centrálních uzlů Internetu, a proto ho používají poskytovatelé připojení k Internetu a peeringové uzly. Pro rozlišení jednotlivých podsítí jsou používána čísla autonomních systémů (AS). Aktuální verze je BGP4, která byla popsána v RFC 4271 v roce 2006.
3. RIP PROTOKOL
RIP protokol (routing information protocol) je protokol ze skupiny RVP směrovacích protokolů. Umožňuje směrovačům komunikovat mezi sebou a reagovat na změny topologie počítačové sítě. Je to aplikační protokol a své pakety posílá zabalené jako UDP datagramy. Tyto pakety potom obsahují celé nebo jenom nějakou část routovacích tabulek.
Na počátku byl (dnes již historický) protokol RIP. Ten měl však nevýhodu v tom, že nešířil s cílovými sítěmi i jejich masku – předpokládal standardní síťové masky. Proto se do dnešní doby již nehodí. Protokol RIP2 odstranil tento nedostatek. Mezi RIP a RIP2 je tak rozdíl v tom, že RIP šířil své pakety pomocí všeobecného oběžníku (broadcast), kdežto RIP2 používá adresný oběžník (multicast) o IP adrese 224.0.0.9.
Takto jsou pakety šířeny každých 30 vteřin. Ve směrovacích tabulkách pak směry po 180 vteřinách expirují, tj. pokud se do 180 vteřin neobjeví znovu oběžník s konkrétním směrem, pak je tento směr vymazán ze směrovací tabulky. Metrika 16 je pokládána za nedo-stupnou síť.
RIPng je protokol, který nastoupil jako modifikace pro rozvíjející Internet protocol v6 (IPv6).
Obrázek 9 - routovací tabulka pomocí protokolu RIP v software Router-OS WinBox
POUŽITÁ LITERATURA
Jančíková, Z. a R. Frischer. Základy počítačových sítí, skripta. Ostrava: VŠB–TUO, 2016
Hladká, E. Základy IT Gramotnosti. Brno: MUNI, 2013
Jelínek, J. Úvod do počítačových sítí I., skripta. Ústí nad Labem 2005
DOSTÁLEK, Libor a Alena KABELOVÁ. Velký průvodce protokoly TCP/IP a systémem DNS. 3. aktualiz. a rozš. vyd. Praha: Computer Press, 2002. ISBN 9788072266753.